
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<head>
  <meta charset="utf-8">
  <title>swift委托 - ksnowlv</title>
  <meta name="author" content="律威">

  
  <meta name="description" content="swift中的委托和objective-c中的类似。 一.协议支持required/optional 如果协议是optional协议 1.协议接口存在与否的判断, 调用方法、属性、下标索引等前面需要加上一个? 1.如果是nil值，也就是Optional.None，会跳过后面的操作不执行; 2. &hellip;">
  

  <!-- http://t.co/dKP3o1e -->
  <meta name="HandheldFriendly" content="True">
  <meta name="MobileOptimized" content="320">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  
  <link rel="canonical" href="http://ksnowlv.github.io/blog/2014/09/11/swift-wei-tuo">
  <link href="/favicon.png" rel="icon">
  <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
  <link href="/atom.xml" rel="alternate" title="ksnowlv" type="application/atom+xml">
  <script src="/javascripts/modernizr-2.0.js"></script>
  <script src="//ajax.useso.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script>!window.jQuery && document.write(unescape('%3Cscript src="./javascripts/lib/jquery.min.js"%3E%3C/script%3E'))</script>
  <script src="/javascripts/octopress.js" type="text/javascript"></script>
  <!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href="http://fonts.useso.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
<link href="http://fonts.useso.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">

  
  <script type="text/javascript">
    var _gaq = _gaq || [];
     _gaq.push(['_setAccount', 'UA-39546615-2']);
    // _gaq.push(['_trackPageview']);

    // (function() {
    //   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    //   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    //   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    // })();

    _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src='http://droidyue-tools.qiniudn.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
  </script>


</head>

<body   >
  <header role="banner"><hgroup>
  <h1><a href="/">ksnowlv</a></h1>
  
    <h2>回顾过去,总结以往;立足现在,铭记当下;技术为主,笔记而已.</h2>
  
</hgroup>

</header>
  <nav role="navigation"><ul class="subscription" data-subscription="rss">
  <li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
  
</ul>
  
<form action="http://google.com/search" method="get">
  <fieldset role="search">
    <input type="hidden" name="q" value="site:ksnowlv.github.io" />
    <input class="search" type="text" name="q" results="0" placeholder="Search"/>
  </fieldset>
</form>
  
<ul class="main-navigation">
  <li><a href="/">博客首页</a></li>
  <li><a href="/blog/archives">文章列表</a></li>
  <!-- <li><a href="/about-me">关于我</a></li>
 -->
</ul>

</nav>
  <div id="main">
    <div id="content">
      <div>
<article class="hentry" role="article">
  
  <header>
    
      <h1 class="entry-title">Swift委托</h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-09-11T13:59:00+08:00" pubdate data-updated="true">Sep 11<span>th</span>, 2014</time>
        
         | <a href="#disqus_thread">Comments</a>
        
      </p>
    
  </header>


<div class="entry-content"><p>swift中的委托和objective-c中的类似。</p>

<h3>一.协议支持required/optional</h3>

<p>如果协议是optional协议</p>

<h4>1.协议接口存在与否的判断,</h4>

<p> 调用方法、属性、下标索引等前面需要加上一个?</p>

<blockquote><p>1.如果是nil值，也就是Optional.None，会跳过后面的操作不执行;</p>

<p>2.如果有值，就是Optional.Some，就会拆包(unwrap)，然后对拆包后的值执行后面的操作，来保证执行这个操作的安全性.</p></blockquote>

<h4>2.声明与必选协议的不同之处。可选协议需要@objc</h4>

<h3>二.示例</h3>

<p>1.完整示例代码</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
<span class='line-number'>62</span>
<span class='line-number'>63</span>
<span class='line-number'>64</span>
<span class='line-number'>65</span>
<span class='line-number'>66</span>
<span class='line-number'>67</span>
<span class='line-number'>68</span>
<span class='line-number'>69</span>
<span class='line-number'>70</span>
<span class='line-number'>71</span>
<span class='line-number'>72</span>
<span class='line-number'>73</span>
<span class='line-number'>74</span>
<span class='line-number'>75</span>
<span class='line-number'>76</span>
<span class='line-number'>77</span>
<span class='line-number'>78</span>
</pre></td><td class='code'><pre><code class='objective-c'><span class='line'><span class="cm">/**</span>
</span><span class='line'><span class="cm">游戏状态</span>
</span><span class='line'><span class="cm">*/</span>
</span><span class='line'><span class="k">enum</span> <span class="n">QQGameState</span> <span class="o">:</span><span class="n">Int</span><span class="p">{</span>
</span><span class='line'>    <span class="k">case</span> <span class="n">QQGameStateNone</span> <span class="o">=</span> <span class="mi">0</span>
</span><span class='line'>    <span class="k">case</span> <span class="n">QQGameStateStart</span> <span class="o">=</span> <span class="mi">1</span>
</span><span class='line'>    <span class="k">case</span> <span class="n">QQGameStatePlaying</span> <span class="o">=</span> <span class="mi">2</span>
</span><span class='line'>    <span class="k">case</span> <span class="n">QQGameStatePause</span> <span class="o">=</span> <span class="mi">3</span>
</span><span class='line'>    <span class="k">case</span> <span class="n">QQGameStateGameOver</span> <span class="o">=</span> <span class="mi">4</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'>
</span><span class='line'><span class="cm">/**</span>
</span><span class='line'><span class="cm">游戏Delegate</span>
</span><span class='line'><span class="cm">*/</span>
</span><span class='line'><span class="err">@</span><span class="n">objc</span> <span class="n">protocol</span> <span class="n">QQGameDelegate</span><span class="p">{</span>
</span><span class='line'>    <span class="n">func</span> <span class="n">notifyPlayerState</span><span class="p">()</span>
</span><span class='line'>    <span class="n">optional</span> <span class="n">func</span> <span class="n">notifyGameState</span><span class="p">(</span><span class="nl">gameState:</span> <span class="n">Int</span><span class="p">)</span>
</span><span class='line'>    <span class="n">optional</span> <span class="n">func</span> <span class="n">notifyGameNotification</span><span class="p">(</span><span class="nl">gameNotification:</span> <span class="n">String</span><span class="p">)</span>
</span><span class='line'>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="cm">/**</span>
</span><span class='line'><span class="cm">游戏事件类</span>
</span><span class='line'><span class="cm">*/</span>
</span><span class='line'><span class="n">class</span> <span class="nl">QQGameStateEvent:</span><span class="n">QQGameDelegate</span><span class="p">{</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">func</span> <span class="n">notifyPlayerState</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'>        <span class="n">println</span><span class="p">(</span><span class="s">&quot;notifyPlayerState!!!&quot;</span><span class="p">)</span>
</span><span class='line'>    <span class="p">}</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">func</span> <span class="n">notifyGameNotification</span><span class="p">(</span><span class="nl">gameNotification:</span> <span class="n">String</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'>        <span class="n">println</span><span class="p">(</span><span class="s">&quot;game notification : \(gameNotification)&quot;</span><span class="p">)</span>
</span><span class='line'>    <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'>
</span><span class='line'><span class="cm">/**</span>
</span><span class='line'><span class="cm">游戏类</span>
</span><span class='line'><span class="cm">*/</span>
</span><span class='line'><span class="n">class</span> <span class="n">QQGame</span><span class="p">{</span>
</span><span class='line'>    <span class="n">private</span> <span class="n">var</span> <span class="nl">_gameState:</span><span class="n">QQGameState</span> <span class="o">=</span> <span class="n">QQGameState</span><span class="p">.</span><span class="n">QQGameStateNone</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">private</span> <span class="n">var</span> <span class="nl">_gameDelegate:</span><span class="n">QQGameDelegate</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">private</span> <span class="n">var</span> <span class="nl">gameDelegate:</span><span class="n">QQGameDelegate</span><span class="p">{</span>
</span><span class='line'>        <span class="n">get</span><span class="p">{</span>
</span><span class='line'>            <span class="k">return</span> <span class="n">self</span><span class="p">.</span><span class="n">_gameDelegate</span>
</span><span class='line'>        <span class="p">}</span>
</span><span class='line'>        <span class="n">set</span><span class="p">{</span>
</span><span class='line'>            <span class="n">self</span><span class="p">.</span><span class="n">_gameDelegate</span> <span class="o">=</span> <span class="n">newValue</span>
</span><span class='line'>        <span class="p">}</span>
</span><span class='line'>    <span class="p">}</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">init</span><span class="p">(){</span>
</span><span class='line'>
</span><span class='line'>        <span class="n">self</span><span class="p">.</span><span class="n">_gameDelegate</span> <span class="o">=</span> <span class="n">QQGameStateEvent</span><span class="p">();</span>
</span><span class='line'>        <span class="n">self</span><span class="p">.</span><span class="n">gameRunning</span><span class="p">();</span>
</span><span class='line'>    <span class="p">}</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">func</span> <span class="n">gameRunning</span><span class="p">(){</span>
</span><span class='line'>
</span><span class='line'>        <span class="c1">//game start</span>
</span><span class='line'>        <span class="n">_gameDelegate</span><span class="p">.</span><span class="n">notifyGameState</span><span class="o">?</span><span class="p">(</span><span class="n">QQGameState</span><span class="p">.</span><span class="n">QQGameStateStart</span><span class="p">.</span><span class="n">toRaw</span><span class="p">());</span>
</span><span class='line'>        <span class="c1">//game playing</span>
</span><span class='line'>        <span class="n">_gameDelegate</span><span class="p">.</span><span class="n">notifyGameState</span><span class="o">?</span><span class="p">(</span><span class="n">QQGameState</span><span class="p">.</span><span class="n">QQGameStatePlaying</span><span class="p">.</span><span class="n">toRaw</span><span class="p">());</span>
</span><span class='line'>
</span><span class='line'>        <span class="c1">//game pause</span>
</span><span class='line'>        <span class="n">_gameDelegate</span><span class="p">.</span><span class="n">notifyGameState</span><span class="o">?</span><span class="p">(</span><span class="n">QQGameState</span><span class="p">.</span><span class="n">QQGameStatePause</span><span class="p">.</span><span class="n">toRaw</span><span class="p">());</span>
</span><span class='line'>        <span class="n">_gameDelegate</span><span class="p">.</span><span class="n">notifyGameNotification</span><span class="o">?</span><span class="p">(</span><span class="s">&quot;游戏停服更新!!!&quot;</span><span class="p">);</span>
</span><span class='line'>        <span class="c1">//Game Over</span>
</span><span class='line'>        <span class="n">_gameDelegate</span><span class="p">.</span><span class="n">notifyGameState</span><span class="o">?</span><span class="p">(</span><span class="n">QQGameState</span><span class="p">.</span><span class="n">QQGameStateGameOver</span><span class="p">.</span><span class="n">toRaw</span><span class="p">());</span>
</span><span class='line'>        <span class="n">_gameDelegate</span><span class="p">.</span><span class="n">notifyGameNotification</span><span class="o">?</span><span class="p">(</span><span class="s">&quot;系统检测到你使用外挂，封号七天!!!&quot;</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>        <span class="n">_gameDelegate</span><span class="p">.</span><span class="n">notifyPlayerState</span><span class="p">();</span>
</span><span class='line'>
</span><span class='line'>    <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>


<h4>2.调用</h4>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='objective-c'><span class='line'><span class="n">var</span> <span class="n">game</span> <span class="o">=</span>  <span class="n">QQGame</span><span class="p">();</span>
</span></code></pre></td></tr></table></div></figure>


<h4>3.日志</h4>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='objective-c'><span class='line'><span class="n">game</span> <span class="n">notification</span> <span class="o">:</span> <span class="err">游戏停服更新</span><span class="o">!!!</span>
</span><span class='line'><span class="n">game</span> <span class="n">notification</span> <span class="o">:</span> <span class="err">系统检测到你使用外挂，封号七天</span><span class="o">!!!</span>
</span><span class='line'><span class="n">notifyPlayerState</span>
</span></code></pre></td></tr></table></div></figure>


<h3>三.小结</h3>

<h4>1.?的使用场景:</h4>

<ul>
<li>1.声明Optional值变量</li>
<li>2.在对Optional值操作中，用来判断是否能响应后面的操作</li>
<li>3.用于安全调用protocol的optional方法</li>
<li>4.使用 as? 向下转型(Downcast)</li>
</ul>


<h4>2.!使用场景</h4>

<p>1.强制对Optional值进行拆包(unwrap)
2.声明Implicitly Unwrapped Optionals值，一般用于类中的属性</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='objective-c'><span class='line'><span class="err">@</span><span class="kt">IBOutlet</span> <span class="n">weak</span> <span class="n">var</span> <span class="nl">tableView:</span><span class="n">UITableView</span><span class="o">!</span>
</span><span class='line'><span class="err">@</span><span class="kt">IBOutlet</span> <span class="n">weak</span>  <span class="n">var</span> <span class="nl">nameLabel:</span> <span class="n">ImplicitlyUnwrappedOptional</span><span class="o">&lt;</span><span class="n">UILabel</span><span class="o">&gt;</span>
</span></code></pre></td></tr></table></div></figure>


<h4>3.和objective-c协议用法类似，仅仅是细节上的差异。</h4>
</div>


  <footer>
    <p class="meta">
      
  

<span class="byline author vcard">Posted by <span class="fn">律威</span></span>

      








  


<time datetime="2014-09-11T13:59:00+08:00" pubdate data-updated="true">Sep 11<span>th</span>, 2014</time>
      

<span class="categories">
  
    <a class='category' href='/blog/categories/swift/'>swift</a>
  
</span>


      
<DIV >
作者： <A href="/">律威</A> <BR>
出处： <A href="/">http://ksnowlv.gitcafe.com</A> 
<BR>原创文章，版权声明：自由转载-非商用-非衍生-保持署名
<a href= "http://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh"> Creative Commons BY-NC-ND 3.0 </a>。 </DIV>


    </p>
<!--     
      Included file 'post/sharing.html' not found in _includes directory
     -->
    <p class="meta">
      
        <a class="basic-alignment left" href="/blog/2014/09/10/swift-xie-yi/" title="Previous Post: swift协议">&laquo; swift协议</a>
      
      
        <a class="basic-alignment right" href="/blog/2014/09/11/swift-bi-bao/" title="Next Post: swift闭包">swift闭包 &raquo;</a>
      
    </p>
  </footer>
</article>

  <section>
    <h1>Comments</h1>
    <div id="disqus_thread" aria-live="polite"><div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = 'ksnowlv';
(function() {
    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
    dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
    
</div>
  </section>

</div>

<aside class="sidebar">
  
    <section>
  <h1>关于我</h1>
  <p>律威,QQ:309235009 微信:ksnowlv</p>
  <p>手机单机游戏/手机网游封神online/手机阅读/腾讯iOS地图客户端&实时公交&开放API(地图&街景)/iPad/iPhone淘宝客户端及性能优化</p>
  <p>目前在银客做银客/简理财/...</p>
  <p>能做一点,是一点;不求大成,不求一万年;积少成多,水到渠成!</p>
</section>
<section>
  <h1>最近发布</h1>
  <ul id="recent_posts">
    
      <li class="post">
        <a href="/blog/2017/04/26/android-drawable/">Android drawable</a>
      </li>
    
      <li class="post">
        <a href="/blog/2017/04/22/iOS-xia-shi-yong-ffmpeg/">iOS下使用ffmpeg</a>
      </li>
    
      <li class="post">
        <a href="/blog/2015/08/19/ios-you-xian-hou-tai-ren-wu/">iOS有限后台任务</a>
      </li>
    
      <li class="post">
        <a href="/blog/2015/08/19/android-xia-jie-ya-suo/">Android下gzip数据流解压缩</a>
      </li>
    
      <li class="post">
        <a href="/blog/2015/08/19/facebook-infer-de-shi-yong/">FaceBook-infer的使用</a>
      </li>
    
  </ul>
</section>
<section>
  <h1>分类</h1>
    <ul id="category-list"><li><a href='/blog/categories/android-jie-ya-suo/'>Android-解压缩 (1)</a></li><li><a href='/blog/categories/androidduo-xian-cheng/'>Android多线程 (3)</a></li><li><a href='/blog/categories/androidcha-jian/'>Android插件 (1)</a></li><li><a href='/blog/categories/androidhui-tu-./'>Android绘图。 (1)</a></li><li><a href='/blog/categories/androidwang-luo/'>Android网络 (1)</a></li><li><a href='/blog/categories/git/'>git (6)</a></li><li><a href='/blog/categories/githubbo-ke/'>github博客 (8)</a></li><li><a href='/blog/categories/ios/'>iOS (6)</a></li><li><a href='/blog/categories/ios-block/'>iOS-block (1)</a></li><li><a href='/blog/categories/ios-bug/'>iOS-Bug (2)</a></li><li><a href='/blog/categories/ios-memory/'>iOS-Memory (4)</a></li><li><a href='/blog/categories/ios-push/'>iOS-push (1)</a></li><li><a href='/blog/categories/ios-ui/'>iOS-UI (2)</a></li><li><a href='/blog/categories/ios-you-hua/'>iOS-优化 (1)</a></li><li><a href='/blog/categories/ios-nei-cun/'>iOS-内存 (1)</a></li><li><a href='/blog/categories/ios-ji-chu/'>iOS-基础 (3)</a></li><li><a href='/blog/categories/ios-duo-xian-cheng/'>iOS-多线程 (3)</a></li><li><a href='/blog/categories/ios-cun-chu/'>iOS-存储 (1)</a></li><li><a href='/blog/categories/ios-an-quan/'>iOS-安全 (1)</a></li><li><a href='/blog/categories/ios-wang-luo/'>iOS-网络 (13)</a></li><li><a href='/blog/categories/ios-jie-ya-suo/'>iOS-解压缩 (1)</a></li><li><a href='/blog/categories/ios-she-ji-mo-shi/'>iOS-设计模式 (1)</a></li><li><a href='/blog/categories/ios-diao-shi/'>iOS-调试 (1)</a></li><li><a href='/blog/categories/iosyou-hua/'>iOS优化 (1)</a></li><li><a href='/blog/categories/iosji-chu/'>iOS基础 (2)</a></li><li><a href='/blog/categories/iosyin-pin/'>iOS音频 (1)</a></li><li><a href='/blog/categories/mac/'>Mac (4)</a></li><li><a href='/blog/categories/mac-duo-xian-cheng/'>Mac-多线程 (1)</a></li><li><a href='/blog/categories/nginx/'>nginx (3)</a></li><li><a href='/blog/categories/php/'>php (3)</a></li><li><a href='/blog/categories/python/'>python (12)</a></li><li><a href='/blog/categories/swift/'>swift (11)</a></li><li><a href='/blog/categories/uml/'>UML (8)</a></li><li><a href='/blog/categories/xcode/'>Xcode (11)</a></li><li><a href='/blog/categories/chan-pin-she-ji/'>产品设计 (2)</a></li><li><a href='/blog/categories/gong-ju/'>工具 (2)</a></li><li><a href='/blog/categories/shu-ju-ku/'>数据库 (2)</a></li><li><a href='/blog/categories/sheng-huo-pian-duan/'>生活片段 (10)</a></li><li><a href='/blog/categories/zhi-ye-sheng-ya/'>职业生涯 (7)</a></li><li><a href='/blog/categories/du-shu/'>读书 (2)</a></li></ul>
</section>
<section>
  <h1>外部链接</h1>
    <ul id="外部链接">
    	<li><a href="https://developer.apple.com">苹果开发者中心</a> </li>
    	<li><a href="http://stackoverflow.com/questions/tagged/ios">stackoverflow</a></li>
    	<li><a href="http://ksnowlv.blog.163.com/blog/#m=0">ksnowlv网易博客</a></li>
	</ul>
</section>

  
</aside>


    </div>
  </div>
  <footer role="contentinfo"><p>
  Copyright &copy; 2017 - 律威 -
  <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>

  <script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1253538110'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "v1.cnzz.com/z_stat.php%3Fid%3D1253538110%26online%3D1' type='text/javascript'%3E%3C/script%3E"));</script>

  <script type="text/javascript">
var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F4c1727a94ea20751730e8a556dbdbf82' type='text/javascript'%3E%3C/script%3E"));
</script>

</p>



</footer>
  

<script type="text/javascript">
      var disqus_shortname = 'ksnowlv';
      
        
        // var disqus_developer = 1;
        var disqus_identifier = 'http://ksnowlv.github.io/blog/2014/09/11/swift-wei-tuo/';
        var disqus_url = 'http://ksnowlv.github.io/blog/2014/09/11/swift-wei-tuo/';
        var disqus_script = 'embed.js';
      
    (function () {
      var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
      dsq.src = 'http://' + disqus_shortname + '.disqus.com/' + disqus_script;
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    }());
</script>








</body>
</html>
